/*
 * CodingLogicProvider
 *
 *  Created on: 10/06/2011
 *      Author: Agustina I. Stekolschik & Ezequiel Palumbo
 */

#ifndef CODINGLOGICPROVIDER_H_
#define CODINGLOGICPROVIDER_H_

#include <Coder.h>
#include <Decoder.h>

using namespace coder;
using namespace decoder;

class CodingLogicProvider{
public:
	CodingLogicProvider() {};
	virtual Coder* getCoder() =0;
	virtual Decoder* getDecoder() =0;
	virtual ~CodingLogicProvider() {};
};

class ArithmeticCodingLogicProvider : public CodingLogicProvider{
public:
	ArithmeticCodingLogicProvider();
	Coder* getCoder();
	Decoder* getDecoder();
	virtual ~ArithmeticCodingLogicProvider();
};

#endif
